Dijiste:
CREAME UN SITIO YA LISTO COMPLETO Y FUNCIONAL CON ESTOS DATOS <!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cine Plus 🎬 | Cine legal gratis</title>
<!-- ✅ Google AdSense -->
<script async
src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3623005145407316"
crossorigin="anonymous"></script>
<style>
body{margin:0;background:#0b0b0b;color:#fff;font-family:Arial}
header{background:#111;padding:15px;display:flex;gap:10px;align-items:center}
.logo{color:#e50914;font-size:22px;font-weight:bold}
input{flex:1;padding:10px;border-radius:6px;border:none}
#movies{
display:grid;
grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
gap:15px;
padding:15px
}
.card{
background:#1c1c1c;
border-radius:10px;
cursor:pointer;
overflow:hidden;
transition:.2s
}
.card:hover{transform:scale(1.05)}
.card img{width:100%;height:220px;object-fit:cover}
.card p{padding:8px;font-size:14px;text-align:center}
/* MODAL */
.modal{
display:none;
position:fixed;
inset:0;
background:rgba(0,0,0,.95);
z-index:3000;
justify-content:center;
align-items:center
}
.modal iframe, .modal video{
width:90%;
max-width:900px;
height:500px;
border-radius:12px;
border:none
}
.close{
position:absolute;
top:20px;
right:25px;
font-size:35px;
cursor:pointer
}
/* ADS */
#adStart,#videoAd{
position:fixed;
inset:0;
background:#000;
z-index:4000;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
text-align:center
}
button{
padding:10px 20px;
border:none;
border-radius:8px;
background:#e50914;
color:#fff;
font-size:16px;
cursor:pointer;
margin-top:15px
}
</style>
</head>
<body>
<!-- 🔴 ANUNCIO INICIAL -->
<div id="adStart">
<p style="font-size:20px">Publicidad</p>
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-3623005145407316"
data-ad-slot="9604916839"
data-ad-format="fluid"
data-ad-layout-key="-6t+ed+2i-1n-4w"></ins>
<button onclick="closeStartAd()">Continuar</button>
</div>
<header>
<div class="logo">🎬 Cine Plus</div>
<input id="search" placeholder="Buscar películas o series..." />
</header>
<!-- 📢 ANUNCIO ENTRE CONTENIDO -->
<div style="padding:15px">
<ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-3623005145407316"
data-ad-slot="9604916839"
data-ad-format="auto"
data-full-width-responsive="true"></ins>
</div>
<div id="movies"></div>
<!-- 🔴 PRE-ROLL -->
<div id="videoAd" style="display:none">
<p>El video comienza en <span id="count">5</span>s</p>
<ins class="adsbygoogle"
style="display:block;width:300px;height:250px"
data-ad-client="ca-pub-3623005145407316"
data-ad-slot="4103131320"></ins>
</div>
<!-- 🎬 MODAL -->
<div class="modal" id="modal">
<span class="close" onclick="closeModal()">×</span>
<iframe id="player" allowfullscreen></iframe>
<video id="archivePlayer" controls style="display:none"></video>
</div>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
/* ================= CONFIG ================= */
const OMDB_KEY = "d58f0933";
const TMDB_KEY = "a75df45f5957e88b88043e6e9558b941";
const OMDB_URL = "https://www.omdbapi.com/";
const TMDB_URL = "https://api.themoviedb.org/3";
/* 🎥 STREAMING LEGAL - INTERNET ARCHIVE */
const ARCHIVE_CONTENT = [
{
type:"movie",
title:"Night of the Living Dead (1968)",
poster:"https://archive.org/services/img/night_of_the_living_dead",
src:"https://archive.org/download/night_of_the_living_dead/night_of_the_living_dead.mp4"
},
{
type:"series",
title:"The Little Shop of Horrors (Episodio 1)",
poster:"https://archive.org/services/img/little_shop_of_horrors",
src:"https://archive.org/download/little_shop_of_horrors/little_shop_of_horrors.mp4"
}
];
let page=1, query="movie", loading=false;
/* ================= ADS ================= */
function closeStartAd(){
document.getElementById("adStart").style.display="none";
}
/* ================= OMDB SCROLL INFINITO ================= */
async function loadMovies(){
if(loading) return;
loading=true;
const r=await fetch(
${OMDB_URL}?apikey=${OMDB_KEY}&s=${query}&page=${page});
const d=await r.json();
if(d.Response==="True"){
d.Search.forEach(m=>{
const c=document.createElement("div");
c.className="card";
c.innerHTML=
<img src="${m.Poster!=="N/A"?m.Poster:"https://via.placeholder.com/300x450"}">
<p>${m.Title} (${m.Year})</p>;
c.onclick=()=>openDetail(m.imdbID);
movies.appendChild(c);
});
page++;
}
loading=false;
}
/* ================= BUSCADOR ================= */
search.addEventListener("keyup",e=>{
if(e.key==="Enter"){
movies.innerHTML="";
query=search.value||"movie";
page=1;
loadMovies();
}
});
/* ================= PRE-ROLL ================= */
function openDetail(imdbID){
let t=5;
count.textContent=t;
videoAd.style.display="flex";
const timer=setInterval(()=>{
t--;
count.textContent=t;
if(t===0){
clearInterval(timer);
videoAd.style.display="none";
loadTrailer(imdbID);
}
},1000);
}
/* ================= TRAILER YOUTUBE ================= */
async function loadTrailer(imdbID){
const f=await fetch(${TMDB_URL}/find/${imdbID}?api_key=${TMDB_KEY}&external_source=imdb_id);
const fd=await f.json();
const movie=fd.movie_results[0];
if(!movie){alert("Trailer no disponible");return;}
const v=await fetch(${TMDB_URL}/movie/${movie.id}/videos?api_key=${TMDB_KEY});
const vd=await v.json();
const tr=vd.results.find(x=>x.site==="YouTube"&&x.type==="Trailer");
if(!tr){alert("No hay trailer");return;}
player.src=https://www.youtube.com/embed/${tr.key}?autoplay=1;
player.style.display="block";
archivePlayer.style.display="none";
modal.style.display="flex";
}
/* ================= INTERNET ARCHIVE ================= */
ARCHIVE_CONTENT.forEach(c=>{
const d=document.createElement("div");
d.className="card";
d.innerHTML=<img src="${c.poster}"><p>${c.title}</p>;
d.onclick=()=>{
player.style.display="none";
archivePlayer.style.display="block";
archivePlayer.src=c.src;
modal.style.display="flex";
};
movies.appendChild(d);
});
/* ================= MODAL ================= */
function closeModal(){
modal.style.display="none";
player.src="";
archivePlayer.pause();
archivePlayer.src="";
}
/* ================= SCROLL INFINITO ================= */
window.addEventListener("scroll",()=>{
if(window.innerHeight+window.scrollY>=document.body.offsetHeight-300){
loadMovies();
}
});
/* INIT */
loadMovies();
</script>
</body>
</html>
